/*
 * XML Type:  join-table
 * Namespace: http://java.sun.com/xml/ns/persistence/orm
 * Java type: com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinTable
 *
 * Automatically generated - do not modify.
 */
package com.googlecode.horncomb.orm.jpa.v10.xmlbeans.impl;
/**
 * An XML join-table(@http://java.sun.com/xml/ns/persistence/orm).
 *
 * This is a complex type.
 */
@SuppressWarnings("unchecked")
public class JoinTableImpl extends org.apache.xmlbeans.impl.values.XmlComplexContentImpl implements com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinTable
{

    /**  */
	private static final long serialVersionUID = -6518482166636967030L;


	public JoinTableImpl(org.apache.xmlbeans.SchemaType sType)
    {
        super(sType);
    }

    private static final javax.xml.namespace.QName JOINCOLUMN$0 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "join-column");
    private static final javax.xml.namespace.QName INVERSEJOINCOLUMN$2 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "inverse-join-column");
    private static final javax.xml.namespace.QName UNIQUECONSTRAINT$4 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "unique-constraint");
    private static final javax.xml.namespace.QName NAME$6 =
        new javax.xml.namespace.QName("", "name");
    private static final javax.xml.namespace.QName CATALOG$8 =
        new javax.xml.namespace.QName("", "catalog");
    private static final javax.xml.namespace.QName SCHEMA$10 =
        new javax.xml.namespace.QName("", "schema");


    /**
     * Gets a List of "join-column" elements
     */
    public java.util.List<com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn> getJoinColumnList()
    {
        final class JoinColumnList extends java.util.AbstractList<com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn>
        {
            public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn get(int i)
                { return JoinTableImpl.this.getJoinColumnArray(i); }

            public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn set(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn o)
            {
                com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn old = JoinTableImpl.this.getJoinColumnArray(i);
                JoinTableImpl.this.setJoinColumnArray(i, o);
                return old;
            }

            public void add(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn o)
                { JoinTableImpl.this.insertNewJoinColumn(i).set(o); }

            public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn remove(int i)
            {
                com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn old = JoinTableImpl.this.getJoinColumnArray(i);
                JoinTableImpl.this.removeJoinColumn(i);
                return old;
            }

            public int size()
                { return JoinTableImpl.this.sizeOfJoinColumnArray(); }

        }

        synchronized (monitor())
        {
            check_orphaned();
            return new JoinColumnList();
        }
    }

    /**
     * Gets array of all "join-column" elements
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn[] getJoinColumnArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            java.util.List targetList = new java.util.ArrayList();
            get_store().find_all_element_users(JOINCOLUMN$0, targetList);
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn[] result = new com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn[targetList.size()];
            targetList.toArray(result);
            return result;
        }
    }

    /**
     * Gets ith "join-column" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn getJoinColumnArray(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn)get_store().find_element_user(JOINCOLUMN$0, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            return target;
        }
    }

    /**
     * Returns number of "join-column" element
     */
    public int sizeOfJoinColumnArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(JOINCOLUMN$0);
        }
    }

    /**
     * Sets array of all "join-column" element
     */
    public void setJoinColumnArray(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn[] joinColumnArray)
    {
        synchronized (monitor())
        {
            check_orphaned();
            arraySetterHelper(joinColumnArray, JOINCOLUMN$0);
        }
    }

    /**
     * Sets ith "join-column" element
     */
    public void setJoinColumnArray(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn joinColumn)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn)get_store().find_element_user(JOINCOLUMN$0, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            target.set(joinColumn);
        }
    }

    /**
     * Inserts and returns a new empty value (as xml) as the ith "join-column" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn insertNewJoinColumn(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn)get_store().insert_element_user(JOINCOLUMN$0, i);
            return target;
        }
    }

    /**
     * Appends and returns a new empty value (as xml) as the last "join-column" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn addNewJoinColumn()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn)get_store().add_element_user(JOINCOLUMN$0);
            return target;
        }
    }

    /**
     * Removes the ith "join-column" element
     */
    public void removeJoinColumn(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(JOINCOLUMN$0, i);
        }
    }

    /**
     * Gets a List of "inverse-join-column" elements
     */
    public java.util.List<com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn> getInverseJoinColumnList()
    {
        final class InverseJoinColumnList extends java.util.AbstractList<com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn>
        {
            public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn get(int i)
                { return JoinTableImpl.this.getInverseJoinColumnArray(i); }

            public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn set(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn o)
            {
                com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn old = JoinTableImpl.this.getInverseJoinColumnArray(i);
                JoinTableImpl.this.setInverseJoinColumnArray(i, o);
                return old;
            }

            public void add(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn o)
                { JoinTableImpl.this.insertNewInverseJoinColumn(i).set(o); }

            public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn remove(int i)
            {
                com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn old = JoinTableImpl.this.getInverseJoinColumnArray(i);
                JoinTableImpl.this.removeInverseJoinColumn(i);
                return old;
            }

            public int size()
                { return JoinTableImpl.this.sizeOfInverseJoinColumnArray(); }

        }

        synchronized (monitor())
        {
            check_orphaned();
            return new InverseJoinColumnList();
        }
    }

    /**
     * Gets array of all "inverse-join-column" elements
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn[] getInverseJoinColumnArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            java.util.List targetList = new java.util.ArrayList();
            get_store().find_all_element_users(INVERSEJOINCOLUMN$2, targetList);
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn[] result = new com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn[targetList.size()];
            targetList.toArray(result);
            return result;
        }
    }

    /**
     * Gets ith "inverse-join-column" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn getInverseJoinColumnArray(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn)get_store().find_element_user(INVERSEJOINCOLUMN$2, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            return target;
        }
    }

    /**
     * Returns number of "inverse-join-column" element
     */
    public int sizeOfInverseJoinColumnArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(INVERSEJOINCOLUMN$2);
        }
    }

    /**
     * Sets array of all "inverse-join-column" element
     */
    public void setInverseJoinColumnArray(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn[] inverseJoinColumnArray)
    {
        synchronized (monitor())
        {
            check_orphaned();
            arraySetterHelper(inverseJoinColumnArray, INVERSEJOINCOLUMN$2);
        }
    }

    /**
     * Sets ith "inverse-join-column" element
     */
    public void setInverseJoinColumnArray(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn inverseJoinColumn)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn)get_store().find_element_user(INVERSEJOINCOLUMN$2, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            target.set(inverseJoinColumn);
        }
    }

    /**
     * Inserts and returns a new empty value (as xml) as the ith "inverse-join-column" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn insertNewInverseJoinColumn(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn)get_store().insert_element_user(INVERSEJOINCOLUMN$2, i);
            return target;
        }
    }

    /**
     * Appends and returns a new empty value (as xml) as the last "inverse-join-column" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn addNewInverseJoinColumn()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.JoinColumn)get_store().add_element_user(INVERSEJOINCOLUMN$2);
            return target;
        }
    }

    /**
     * Removes the ith "inverse-join-column" element
     */
    public void removeInverseJoinColumn(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(INVERSEJOINCOLUMN$2, i);
        }
    }

    /**
     * Gets a List of "unique-constraint" elements
     */
    public java.util.List<com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint> getUniqueConstraintList()
    {
        final class UniqueConstraintList extends java.util.AbstractList<com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint>
        {
            public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint get(int i)
                { return JoinTableImpl.this.getUniqueConstraintArray(i); }

            public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint set(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint o)
            {
                com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint old = JoinTableImpl.this.getUniqueConstraintArray(i);
                JoinTableImpl.this.setUniqueConstraintArray(i, o);
                return old;
            }

            public void add(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint o)
                { JoinTableImpl.this.insertNewUniqueConstraint(i).set(o); }

            public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint remove(int i)
            {
                com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint old = JoinTableImpl.this.getUniqueConstraintArray(i);
                JoinTableImpl.this.removeUniqueConstraint(i);
                return old;
            }

            public int size()
                { return JoinTableImpl.this.sizeOfUniqueConstraintArray(); }

        }

        synchronized (monitor())
        {
            check_orphaned();
            return new UniqueConstraintList();
        }
    }

    /**
     * Gets array of all "unique-constraint" elements
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint[] getUniqueConstraintArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            java.util.List targetList = new java.util.ArrayList();
            get_store().find_all_element_users(UNIQUECONSTRAINT$4, targetList);
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint[] result = new com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint[targetList.size()];
            targetList.toArray(result);
            return result;
        }
    }

    /**
     * Gets ith "unique-constraint" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint getUniqueConstraintArray(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint)get_store().find_element_user(UNIQUECONSTRAINT$4, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            return target;
        }
    }

    /**
     * Returns number of "unique-constraint" element
     */
    public int sizeOfUniqueConstraintArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(UNIQUECONSTRAINT$4);
        }
    }

    /**
     * Sets array of all "unique-constraint" element
     */
    public void setUniqueConstraintArray(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint[] uniqueConstraintArray)
    {
        synchronized (monitor())
        {
            check_orphaned();
            arraySetterHelper(uniqueConstraintArray, UNIQUECONSTRAINT$4);
        }
    }

    /**
     * Sets ith "unique-constraint" element
     */
    public void setUniqueConstraintArray(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint uniqueConstraint)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint)get_store().find_element_user(UNIQUECONSTRAINT$4, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            target.set(uniqueConstraint);
        }
    }

    /**
     * Inserts and returns a new empty value (as xml) as the ith "unique-constraint" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint insertNewUniqueConstraint(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint)get_store().insert_element_user(UNIQUECONSTRAINT$4, i);
            return target;
        }
    }

    /**
     * Appends and returns a new empty value (as xml) as the last "unique-constraint" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint addNewUniqueConstraint()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.UniqueConstraint)get_store().add_element_user(UNIQUECONSTRAINT$4);
            return target;
        }
    }

    /**
     * Removes the ith "unique-constraint" element
     */
    public void removeUniqueConstraint(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(UNIQUECONSTRAINT$4, i);
        }
    }

    /**
     * Gets the "name" attribute
     */
    public java.lang.String getName()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(NAME$6);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }

    /**
     * Gets (as xml) the "name" attribute
     */
    public org.apache.xmlbeans.XmlString xgetName()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(NAME$6);
            return target;
        }
    }

    /**
     * True if has "name" attribute
     */
    public boolean isSetName()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(NAME$6) != null;
        }
    }

    /**
     * Sets the "name" attribute
     */
    public void setName(java.lang.String name)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(NAME$6);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(NAME$6);
            }
            target.setStringValue(name);
        }
    }

    /**
     * Sets (as xml) the "name" attribute
     */
    public void xsetName(org.apache.xmlbeans.XmlString name)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(NAME$6);
            if (target == null)
            {
                target = (org.apache.xmlbeans.XmlString)get_store().add_attribute_user(NAME$6);
            }
            target.set(name);
        }
    }

    /**
     * Unsets the "name" attribute
     */
    public void unsetName()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(NAME$6);
        }
    }

    /**
     * Gets the "catalog" attribute
     */
    public java.lang.String getCatalog()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(CATALOG$8);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }

    /**
     * Gets (as xml) the "catalog" attribute
     */
    public org.apache.xmlbeans.XmlString xgetCatalog()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(CATALOG$8);
            return target;
        }
    }

    /**
     * True if has "catalog" attribute
     */
    public boolean isSetCatalog()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(CATALOG$8) != null;
        }
    }

    /**
     * Sets the "catalog" attribute
     */
    public void setCatalog(java.lang.String catalog)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(CATALOG$8);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(CATALOG$8);
            }
            target.setStringValue(catalog);
        }
    }

    /**
     * Sets (as xml) the "catalog" attribute
     */
    public void xsetCatalog(org.apache.xmlbeans.XmlString catalog)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(CATALOG$8);
            if (target == null)
            {
                target = (org.apache.xmlbeans.XmlString)get_store().add_attribute_user(CATALOG$8);
            }
            target.set(catalog);
        }
    }

    /**
     * Unsets the "catalog" attribute
     */
    public void unsetCatalog()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(CATALOG$8);
        }
    }

    /**
     * Gets the "schema" attribute
     */
    public java.lang.String getSchema()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(SCHEMA$10);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }

    /**
     * Gets (as xml) the "schema" attribute
     */
    public org.apache.xmlbeans.XmlString xgetSchema()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(SCHEMA$10);
            return target;
        }
    }

    /**
     * True if has "schema" attribute
     */
    public boolean isSetSchema()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(SCHEMA$10) != null;
        }
    }

    /**
     * Sets the "schema" attribute
     */
    public void setSchema(java.lang.String schema)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(SCHEMA$10);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(SCHEMA$10);
            }
            target.setStringValue(schema);
        }
    }

    /**
     * Sets (as xml) the "schema" attribute
     */
    public void xsetSchema(org.apache.xmlbeans.XmlString schema)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(SCHEMA$10);
            if (target == null)
            {
                target = (org.apache.xmlbeans.XmlString)get_store().add_attribute_user(SCHEMA$10);
            }
            target.set(schema);
        }
    }

    /**
     * Unsets the "schema" attribute
     */
    public void unsetSchema()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(SCHEMA$10);
        }
    }
}
